#ifndef ENERGY_H
#define ENERGY_H
#include "CVImage.h"

class Energy
{
	public:
		virtual double DataEnergy(uint x,uint y,int label)=0;//* the data term of the energy, works on the (x,y) pixel intensity and a given label.
		//virtual double DataEnergy(uint x,uint y)=0;//* the data term of the energy, works on the (x,y) pixel intensity and its current label
		virtual double SmoothEnergy(int lp,int label)=0;//* the smooth term of the energy, works on the (x,y) pixel label and a given label.
		//virtual double SmoothEnergy(uint x1,uint y1,uint x2,uint y2)=0;//* the smooth term of the energy, works on the (x,y) pixel label and its neighbor's label.
	protected:
		double smoothness;
	private:
};

#endif // ENERGY_H
